An application specific integrated circuit (ASIC) is an integrated circuit that has been customized for a particular use. That particular use may be a complex process that needs to be tested. Conventionally, testing the complex process may have been difficult. An ASIC may be, for example, an integrated circuit designed solely to run in a network switch, network router, or other networking device. In these applications, and others, the ASIC may include diagnostic software designed to detect errors in data streams provided to and/or processed by the ASIC. Conventionally it has been difficult, if possible at all, to determine whether the diagnostic software is operating correctly. And yet, unless the diagnostic software can be tested, the diagnostic role of the network device may be unverified.
ASICs may be tested either in software or as hardware. Typical software simulations of ASICs may include hardware description language (HDL) based simulations where the ASIC itself exists only in software. This testing solution does not test an actual physical device. Typical hardware simulations require a protocol analyzer to be attached to the ASIC data lines to inject or force data faults. The protocol analyzer may also read the results of the data faults. However, this may be difficult when the ASIC being tested is embedded in a circuit board or integrated in a chip. While techniques may exist to determine whether the ASIC hardware is operating properly, conventionally it has been difficult, if possible at all, to determine whether diagnostic processes embedded on the ASIC are operating properly.